import json
from typing import Optional

from fastapi import APIRouter, Query

app03 = APIRouter()

# 用户注册
@app03.post('/user/register')
async def register_user(user:dict):

    try:
        # 先读取现有数据，获取最大id
        with open('Users.json', 'r', encoding='utf-8') as f:
            users_data = json.load(f)
        # 新增的数据 id增1
        if users_data:
            max_id = max([user.get('id', 0) for user in users_data])
            new_id = max_id + 1
        else:
            new_id = 1

        print('000000000',user.get("name"))
        # 创建新用户对象
        new_user = {
            "id": new_id,
            "name": user.get('name', ''),
            'age': user.get('age', 0),
            'gender': user.get('gender', ''),
        }
        print(new_user)
        # 验证必要的字段
        if not new_user['name']:
            return {
                'success': False,
                'message': '姓名不能为空'
            }

        # 添加新用户(写出到Users.json中)
        users_data.append(new_user)
        with open('Users.json', 'w', encoding='utf-8') as f:
            # ensure_ascii 控制非 ASCII 字符的编码方式
            # indent 默认缩进字符
            json.dump(users_data, f, ensure_ascii=False, indent=2)
        return {
            'success': True,
            'message': '用户添加成功'
        }
    except json.JSONDecodeError:
        return {'error': 'Users.json数据格式有误'}
    except FileNotFoundError:
        return {'error': 'Users.json文件不存在'}
    except Exception:
        return {'error': '用户添加失败'}


# 查询所有用户信息
@app03.post('/user/post')
async def post_user_test():
    print('这里是Post请求响应的数据')
    # 读取到Users.json中的数据，并显示到前端页面
    try:
        # 从Users.json文件中读取数据
        with open('Users.json','r',encoding='utf-8') as f:
            users_data = json.load(f)
            return users_data

    except FileNotFoundError:
        return {'error': 'User.json文件不存在'}
    except json.JSONDecodeError:
        return {'error': 'user.json文件格式不正确'}

